﻿/*
 * KLF Headless Browser
 * Written by Kris Oye <kristianoye@gmail.com>
 * Copyright (C) 2011-2012.  All rights reserved.
 */
namespace KLF.Lib.Browser.DOM.CSS
{
    #region Using Statements

    using System;
    using KLF.Lib.Browser.DOM.Style;

    #endregion

    /// <summary>
    /// This interface represents a document with a CSS view.
    /// 
    /// The getOverrideStyle method provides a mechanism through which a DOM
    /// author could effect immediate change to the style of an element without
    /// modifying the explicitly linked style sheets of a document or the 
    /// inline style of elements in the style sheets. This style sheet comes 
    /// after the author style sheet in the cascade algorithm and is called 
    /// override style sheet. The override style sheet takes precedence over 
    /// author style sheets. An "!important" declaration still takes precedence
    /// over a normal declaration. Override, author, and user style sheets all
    /// may contain "!important" declarations. User "!important" rules take 
    /// precedence over both override and author "!important" rules, and 
    /// override "!important" rules take precedence over author "!important"
    /// rules.
    /// 
    /// The expectation is that an instance of the DocumentCSS interface can
    /// be obtained by using binding-specific casting methods on an instance
    /// of the Document interface.
    /// </summary>
    public class DocumentCSS : DocumentStyle
    {
        #region DOM Level 2 CSS Compliance

        /// <summary>
        /// This method is used to retrieve the override style declaration 
        /// for a specified element and a specified pseudo-element. 
        /// </summary>
        /// 
        /// <param name="elt">The element whose style is to be modified.
        /// This parameter cannot be null.</param>
        /// 
        /// <param name="pseudoElt">The pseudo-element or null if none.</param>
        /// <returns>The override style declaration.</returns>
        public CSSStyleDeclaration getOverrideStyle(Element elt, string pseudoElt)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
